Detection of deadlock potentials in multithreaded programs
نویسندگان
چکیده
potentials in multithreaded programs R. Agarwal S. Bensalem E. Farchi K. Havelund Y. Nir-Buchbinder S. D. Stoller S. Ur L. Wang Concurrent programs are well known for containing errors that are difficult to detect, reproduce, and diagnose. Deadlock is a common concurrency error, which occurs when a set of threads are blocked, due to each attempting to acquire a lock held by another. This paper presents a collection of highly scalable static and dynamic techniques for exposing potential deadlocks. The basis is a known algorithm, which, when locks are acquired in a nested fashion, captures the nesting order in a lock graph. A cycle in the graph indicates a deadlock potential. We propose three extensions to this basic algorithm to eliminate, or label as low severity, false warnings of possible deadlocks ( false positives). These false positives may be due to cycles within one thread, cycles guarded by a gate lock (an enclosing lock that prevents deadlocks), and cycles involving several code fragments that cannot possibly execute in parallel. We also present a technique that combines information from multiple runs of the program into a single lock graph, to find deadlock potentials that would not be revealed by analyzing one run at a time. Finally, this paper describes the use of static analysis to automatically reduce the overhead of dynamic checking for deadlock potentials.
منابع مشابه
A Dynamic Deadlock Prediction, Confirmation and Fixing Framework for Multithreaded Programs
Deadlocks widely exist in real-world multithreaded programs. Existing predictive strategies are not consistently scalable; existing confirmation strategies may miss to trigger deadlocks, and existing fixing strategies may incur false positives or high runtime overheads. This paper presents an overview of my approach to automatic deadlock prediction, confirmation, and fixing.
متن کاملLockout: Efficient Testing for Deadlock Bugs
Deadlocks are hard to find via traditional testing, and they manifest rarely during program execution. We introduce Lockout, a technique and a tool that increases the probability of deadlock manifestation in multithreaded programs, while preserving the program semantics and requiring no perturbation to the runtime and the testing infrastructure. Lockout produces binaries that are more prone to ...
متن کاملThe Design of a Multithreaded Programming Course and Its Accompanying Software Tools
With the continuing emergence of multithreaded computation as a powerful vehicle for science and engineering, the need for an introduction to multithreaded programming for scientists and engineers is high. All popular operating systems already support multithreaded programming and the popular POSIX Pthreads standard has been approved. It is the right time to teach students this new technology. ...
متن کاملGadara: Dynamic Deadlock Avoidance for Multithreaded Programs
Deadlock is an increasingly pressing concern as the multicore revolution forces parallel programming upon the average programmer. Existing approaches to deadlock impose onerous burdens on developers, entail high runtime performance overheads, or offer no help for unmodified legacy code. Gadara automates dynamic deadlock avoidance for conventional multithreaded programs. It employs whole-program...
متن کاملScalable Dynamic Deadlock Analysis of Multi-Threaded Programs
This paper presents a dynamic program analysis algorithm that can detect deadlock potentials in a multi-threaded program by examining a single execution trace, obtained by running an instrumented version of the program. The algorithm is interesting because it can identify deadlock potentials even though no deadlocks occur in the examined execution, and therefore it scales very well in contrast ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- IBM Journal of Research and Development
دوره 54 شماره
صفحات -
تاریخ انتشار 2010